package com.fzrskj.cloud.free.core.enums;

/**
 * DomainTemplateStatusEnum.
 *
 * @author wzj.
 *         Created on 2018/03/18 0001.
 */
public enum DomainTemplateStatusEnum {
    /**
     * 本地未上传资料
     */
    LOCAL_IMG_NO_FOUND(1, "证件未上传", "-1"),
    /**
     *  待提交上级.
     */
    LOCAL_AUDITING_UPLOAD(2,"待提交", "-1") ,
    /**
     *  上级证件未上传.
     */
    SUB_IMG_NO_FOUND(3,"证件未上传", "00") ,
    /**
     *  模板上级审核中.
     */
    SUB_AUDITING(4,"上级审核中", "04") ,
    /**
     *  模板上级实名失败.
     */
    SUB_FAILED(5,"审核失败", "07") ,
    /**
     *  模板上级实名成功
     */
    SUB_SUCCEED(6,"已实名", "06");

    /**
     * 本地模板状态.
     */
    private Integer status;

    /**
     * 本地模板状态.
     */
    private String statusName;

    /**
     * 新网模板状态码.
     */
    private String xinnetStatus;

    /**
     * construct.
     * @param status 值.
     */
    DomainTemplateStatusEnum(Integer status) {
        this.status = status;
    }

    /**
     * construct.
     * @param status 值.
     */
    DomainTemplateStatusEnum(Integer status, String statusName) {
        this.status = status;
        this.statusName = statusName;
    }

    /**
     * construct.
     * @param status 值.
     */
    DomainTemplateStatusEnum(Integer status, String statusName, String xinnetStatus) {
        this.status = status;
        this.statusName = statusName;
        this.xinnetStatus = xinnetStatus;
    }

    /**
     * 是否等于.
     * @param comparisonType 对比值.
     * @return
     */
    public Boolean equals(int comparisonType) {
        return this.status.equals(comparisonType);
    }

    /**
     * get status.
     * @return status.
     */
    public Integer getStatus() {
        return this.status;
    }

    /**
     * 获取状态名称.
     * @return statusName.
     */
    public String getStatusName() {
        return this.statusName;
    }

    /**
     * 获取新网状态名称.
     * @return xinnetStatus.
     */
    public String getXinnetStatus() {
        return this.xinnetStatus;
    }



    /**
     * 通过状态值获取状态名称.
     * @param status value.
     * @return status name.
     */
    public static String getStatusName(Integer status) {
        for (DomainTemplateStatusEnum item : DomainTemplateStatusEnum.values()) {
            if (item.getStatus().equals(status)) {
                return item.getStatusName();
            }
        }
        return null;
    }


    /**
     * 通过新网状态值获取本地状态值.
     * @param status value.
     * @return status name.
     */
    public static Integer getStatusByXinnetStatus(String status) {
        //05 是上传注册局失败 本地显示为处理中
        if (status.equals("05")){
            status = "04";
        }
        for (DomainTemplateStatusEnum item : DomainTemplateStatusEnum.values()) {
            if (item.getXinnetStatus().equals(status)) {
                return item.getStatus();
            }
        }
        return null;
    }

    /**
     * 通过新网状态值获取本地状态值名称.
     * @param status value.
     * @return status name.
     */
    public static String getStatusNameByXinnetStatus(String status) {
        for (DomainTemplateStatusEnum item : DomainTemplateStatusEnum.values()) {
            if (item.getXinnetStatus().equals(status)) {
                return item.getStatusName();
            }
        }
        return null;
    }
}
